An Executable Specification and Verifier for Relaxed Memory Order
نویسندگان
چکیده
ÐThe Mur' description language and verification system for finite-state concurrent systems is applied to the problem of specifying a family of multiprocessor memory models described in the SPARC Version 9 architecture manual. The description language allows for a straightforward operational description of the memory model which can be used as a specification for programmers and machine architects. The automatic verifier can be used to generate all possible outcomes of small assembly language multiprocessor programs in a given memory model, which is very helpful for understanding the subtleties of the model. The verifier can also check the correctness of assembly language programs including synchronization routines. This paper describes the memory models and their encoding in the Mur' description language. We describe how synchronization routines can be verified and how finite state programs can be analyzed. We also present some interesting findings from the verification and the analysis. Index TermsÐMultiprocessors, memory models, formal method, executable specification, automatic verification.
منابع مشابه
From Rewriting Logic Executable Semantics to Matching Logic Program Verification
Rewriting logic semantics (RLS) is a definitional framework in which a programming language is defined as a rewrite theory: the algebraic signature defines the program configurations, the equations define structural identities on configurations, and the rewrite rules define the irreversible computational steps. RLS language definitions are efficiently executable using conventional rewrite engin...
متن کاملToward a Provably-Correct Implementation of the JVM Bytecode Verifier
This paper reports on our ongoing efforts to realize a provably-correct implementation of the Java Virtual Machine bytecode verifier. We take the perspective that bytecode verification is a data flow analysis problem, or more generally, a constraint-solving problem on lattices. We employ SPECWARE, a system available from Kestrel Institute that supports the development of programs from specifica...
متن کاملVerified Java bytecode verification
The bytecode verifier is an important part of Java’s security architecture. This thesis presents a fully formal, executable, and machine checked specification of a representative subset of the Java Virtual Machine and its bytecode verifier together with a proof that the bytecode verifier is safe. The specification consists of an abstract framework for bytecode verification which is instantiated...
متن کاملOperational Aspects of C/C++ Concurrency
Relaxed memory models define the behavior of concurrent programs, executed on modern multiprocessors. Existing semantics for modelling relaxed concurrency in C/C++ adopt the axiomatic style, defining program executions via orders between read/write events. This representation of executions poses challenges for employing such semantics for testing, debugging and symbolic execution of programs. W...
متن کاملDeveloping Certified Program Verifiers with a Proof Assistant
I describe ongoing work on a new approach to foundational proof-carrying code. The key new idea is to use certified program verifiers to embody customized program verification strategies, specialized to particular safety policies, enforcement mechanisms, and source-level compilers. A certified verifier is an executable program that has a full correctness proof. The particular strategy that I’ve...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- IEEE Trans. Computers
دوره 48 شماره
صفحات -
تاریخ انتشار 1999